﻿#ifndef TCP_SOCKET_H
#define TCP_SOCKET_H
#pragma execution_character_set("utf-8")
#include <QTcpSocket>
#include <QDataStream>
#include <QDebug>
#include <QJsonObject>
#include <QJsonDocument>
#include <QTimer>
#include <QDateTime>
#include <common.h>
class tcp_socket:public QTcpSocket
{
  Q_OBJECT
public:
    tcp_socket(QObject *parent=0);
    ~tcp_socket();
    QDateTime Lastconnecttime;
    QTimer clock;                                    //定时检测是否断开
    void analyse_data();                             //对原始数据进行分析：拆包
    QByteArray packdata(QString id,QString type,QString data);//打包数据
    QStringList json_analyse(QByteArray data);                  //json解析
    void ConnectToServer();
private slots:
     void receive();
     void connect_server();                          //连接服务器
     void send_data(QString id,QString type,QString data);                 //发送数据
     void setpassword(QString password);              //设置密码
     void isdisconnect();                            //检测是否断开连接
signals:
   void  reply_data(QStringList data);                //转发信息给管理类
   void  socket_isconnect(bool connect);              //是否连接服务器
private:
   void process_data(QByteArray data);                         //处理数据
    // QString ip="103.44.145.245";                    //ip地址  103.44.145.245
   QString ip="115.159.25.157";
//   QString ip="192.168.0.102";
  // QString ip="127.0.0.1";
    // int port=16773;                                //端口号  16773
  int port=60000;
     qint32 feature=19960108;                        //特征值
     QByteArray receive_data;                        //接受的信息
     QString id;
     QString password;

};

#endif // TCP_SOCKET_H

